package com.ruoyi.cms.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 学校信息对象 cms_school_info
 *
 * @author houyong
 * @date 2025-11-08
 */
public class CmsSchoolInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 学校唯一标识
     */
    private String id;

    /**
     * 学校中文名称
     */
    @Excel(name = "学校中文名称")
    private String schoolName;

    /**
     * 学校编码
     */
    @Excel(name = "学校编码")
    private String schoolCode;

    /**
     * 省份编码
     */
    @Excel(name = "省份编码")
    private String provinceCode;

    /**
     * 城市编码
     */
    @Excel(name = "城市编码")
    private String cityCode;

    /**
     * 学校层次
     */
    @Excel(name = "学校层次")
    private String schoolLevel;

    /**
     * 学校类型
     */
    @Excel(name = "学校类型")
    private String schoolType;

    /**
     * 优势专业类别
     */
    @Excel(name = "优势专业类别")
    private String majorCategory;

    /**
     * QS世界排名
     */
    @Excel(name = "QS世界排名")
    private Long qsRank;

    /**
     * 校友会排名
     */
    @Excel(name = "校友会排名")
    private Long alumniRank;

    /**
     * 建校日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "建校日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date establishmentDate;

    /**
     * 主管部门
     */
    @Excel(name = "主管部门")
    private String authority;

    /**
     * 学校地址
     */
    @Excel(name = "学校地址")
    private String location;

    /**
     * 学校官网URL
     */
    @Excel(name = "学校官网URL")
    private String officialWebsite;

    /**
     * 招生电话
     */
    @Excel(name = "招生电话")
    private String admissionPhone;

    /**
     * 招生邮箱
     */
    @Excel(name = "招生邮箱")
    private String email;

    /**
     * 学校概况（中文）
     */
    @Excel(name = "学校概况", readConverterExp = "中=文")
    private String schoolOverview;

    /**
     * 住宿情况
     */
    @Excel(name = "住宿情况")
    private String housingSituation;

    /**
     * 学费与奖学金信息
     */
    @Excel(name = "学费与奖学金信息")
    private String tuitionAndScholarships;

    /**
     * 创建人ID
     */
    @Excel(name = "创建人ID")
    private String createUser;

    /**
     * 更新人ID
     */
    @Excel(name = "更新人ID")
    private String updateUser;

    /**
     * 学校简介（简版）
     */
    @Excel(name = "学校简介", readConverterExp = "简=版")
    private String schoolOverviewJj;

    /**
     * 办学性质
     */
    @Excel(name = "办学性质")
    private String natureEducation;

    /**
     * 招生简章信息
     */
    @Excel(name = "招生简章信息")
    private String zszp;

    /**
     * 院校风采图片文字说明
     */
    @Excel(name = "院校风采图片文字说明")
    private String yxftzp;

    /**
     * 院校操场图片文字说明
     */
    @Excel(name = "院校操场图片文字说明")
    private String yxctzp;

    /**
     * 校花照片文字说明
     */
    @Excel(name = "校花照片文字说明")
    private String xhzp;

    /**
     * 招生简章图片URL列表（JSON格式）
     */
    @Excel(name = "招生简章图片URL列表", readConverterExp = "J=SON格式")
    private String zszppUrlList;

    /**
     * 院校风采图片URL
     */
    @Excel(name = "院校风采图片URL")
    private String yxftzpUrl;

    /**
     * 院校操场图片URL
     */
    @Excel(name = "院校操场图片URL")
    private String yxctzpUrl;

    /**
     * 校花照片URL
     */
    @Excel(name = "校花照片URL")
    private String xhzpUrl;

    /**
     * 学校英文名称
     */
    @Excel(name = "学校英文名称")
    private String enname;

    /**
     * 审核状态
     */
    @Excel(name = "审核状态")
    private String auditState;

    /**
     * 注册状态
     */
    @Excel(name = "注册状态")
    private String regState;

    /**
     * 是否删除（0=未删除，1=已删除）
     */
    @Excel(name = "是否删除", readConverterExp = "0==未删除，1=已删除")
    private Integer isDel;

    /**
     * 是否985院校（0=否，1=是）
     */
    @Excel(name = "是否985院校", readConverterExp = "0==否，1=是")
    private Integer isNine;

    /**
     * 是否211院校（0=否，1=是）
     */
    @Excel(name = "是否211院校", readConverterExp = "0==否，1=是")
    private Integer isTwo;

    /**
     * 是否双一流院校（0=否，1=是）
     */
    @Excel(name = "是否双一流院校", readConverterExp = "0==否，1=是")
    private Integer isDouble;

    /**
     * 校园VR链接
     */
    @Excel(name = "校园VR链接")
    private String vrUrl;

    /**
     * 学校状态
     */
    @Excel(name = "学校状态")
    private String status;

    /**
     * 是否启用（0=禁用，1=启用）
     */
    @Excel(name = "是否启用", readConverterExp = "0==禁用，1=启用")
    private Integer isEnabled;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditTime;

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setSchoolName(String schoolName) {
        this.schoolName = schoolName;
    }

    public String getSchoolName() {
        return schoolName;
    }

    public void setSchoolCode(String schoolCode) {
        this.schoolCode = schoolCode;
    }

    public String getSchoolCode() {
        return schoolCode;
    }

    public void setProvinceCode(String provinceCode) {
        this.provinceCode = provinceCode;
    }

    public String getProvinceCode() {
        return provinceCode;
    }

    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }

    public String getCityCode() {
        return cityCode;
    }

    public void setSchoolLevel(String schoolLevel) {
        this.schoolLevel = schoolLevel;
    }

    public String getSchoolLevel() {
        return schoolLevel;
    }

    public void setSchoolType(String schoolType) {
        this.schoolType = schoolType;
    }

    public String getSchoolType() {
        return schoolType;
    }

    public void setMajorCategory(String majorCategory) {
        this.majorCategory = majorCategory;
    }

    public String getMajorCategory() {
        return majorCategory;
    }

    public void setQsRank(Long qsRank) {
        this.qsRank = qsRank;
    }

    public Long getQsRank() {
        return qsRank;
    }

    public void setAlumniRank(Long alumniRank) {
        this.alumniRank = alumniRank;
    }

    public Long getAlumniRank() {
        return alumniRank;
    }

    public void setEstablishmentDate(Date establishmentDate) {
        this.establishmentDate = establishmentDate;
    }

    public Date getEstablishmentDate() {
        return establishmentDate;
    }

    public void setAuthority(String authority) {
        this.authority = authority;
    }

    public String getAuthority() {
        return authority;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getLocation() {
        return location;
    }

    public void setOfficialWebsite(String officialWebsite) {
        this.officialWebsite = officialWebsite;
    }

    public String getOfficialWebsite() {
        return officialWebsite;
    }

    public void setAdmissionPhone(String admissionPhone) {
        this.admissionPhone = admissionPhone;
    }

    public String getAdmissionPhone() {
        return admissionPhone;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEmail() {
        return email;
    }

    public void setSchoolOverview(String schoolOverview) {
        this.schoolOverview = schoolOverview;
    }

    public String getSchoolOverview() {
        return schoolOverview;
    }

    public void setHousingSituation(String housingSituation) {
        this.housingSituation = housingSituation;
    }

    public String getHousingSituation() {
        return housingSituation;
    }

    public void setTuitionAndScholarships(String tuitionAndScholarships) {
        this.tuitionAndScholarships = tuitionAndScholarships;
    }

    public String getTuitionAndScholarships() {
        return tuitionAndScholarships;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setSchoolOverviewJj(String schoolOverviewJj) {
        this.schoolOverviewJj = schoolOverviewJj;
    }

    public String getSchoolOverviewJj() {
        return schoolOverviewJj;
    }

    public void setNatureEducation(String natureEducation) {
        this.natureEducation = natureEducation;
    }

    public String getNatureEducation() {
        return natureEducation;
    }

    public void setZszp(String zszp) {
        this.zszp = zszp;
    }

    public String getZszp() {
        return zszp;
    }

    public void setYxftzp(String yxftzp) {
        this.yxftzp = yxftzp;
    }

    public String getYxftzp() {
        return yxftzp;
    }

    public void setYxctzp(String yxctzp) {
        this.yxctzp = yxctzp;
    }

    public String getYxctzp() {
        return yxctzp;
    }

    public void setXhzp(String xhzp) {
        this.xhzp = xhzp;
    }

    public String getXhzp() {
        return xhzp;
    }

    public void setZszppUrlList(String zszppUrlList) {
        this.zszppUrlList = zszppUrlList;
    }

    public String getZszppUrlList() {
        return zszppUrlList;
    }

    public void setYxftzpUrl(String yxftzpUrl) {
        this.yxftzpUrl = yxftzpUrl;
    }

    public String getYxftzpUrl() {
        return yxftzpUrl;
    }

    public void setYxctzpUrl(String yxctzpUrl) {
        this.yxctzpUrl = yxctzpUrl;
    }

    public String getYxctzpUrl() {
        return yxctzpUrl;
    }

    public void setXhzpUrl(String xhzpUrl) {
        this.xhzpUrl = xhzpUrl;
    }

    public String getXhzpUrl() {
        return xhzpUrl;
    }

    public void setEnname(String enname) {
        this.enname = enname;
    }

    public String getEnname() {
        return enname;
    }

    public void setAuditState(String auditState) {
        this.auditState = auditState;
    }

    public String getAuditState() {
        return auditState;
    }

    public void setRegState(String regState) {
        this.regState = regState;
    }

    public String getRegState() {
        return regState;
    }

    public void setIsDel(Integer isDel) {
        this.isDel = isDel;
    }

    public Integer getIsDel() {
        return isDel;
    }

    public void setIsNine(Integer isNine) {
        this.isNine = isNine;
    }

    public Integer getIsNine() {
        return isNine;
    }

    public void setIsTwo(Integer isTwo) {
        this.isTwo = isTwo;
    }

    public Integer getIsTwo() {
        return isTwo;
    }

    public void setIsDouble(Integer isDouble) {
        this.isDouble = isDouble;
    }

    public Integer getIsDouble() {
        return isDouble;
    }

    public void setVrUrl(String vrUrl) {
        this.vrUrl = vrUrl;
    }

    public String getVrUrl() {
        return vrUrl;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setIsEnabled(Integer isEnabled) {
        this.isEnabled = isEnabled;
    }

    public Integer getIsEnabled() {
        return isEnabled;
    }

    public void setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
    }

    public Date getAuditTime() {
        return auditTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("schoolName", getSchoolName())
                .append("schoolCode", getSchoolCode())
                .append("provinceCode", getProvinceCode())
                .append("cityCode", getCityCode())
                .append("schoolLevel", getSchoolLevel())
                .append("schoolType", getSchoolType())
                .append("majorCategory", getMajorCategory())
                .append("qsRank", getQsRank())
                .append("alumniRank", getAlumniRank())
                .append("establishmentDate", getEstablishmentDate())
                .append("authority", getAuthority())
                .append("location", getLocation())
                .append("officialWebsite", getOfficialWebsite())
                .append("admissionPhone", getAdmissionPhone())
                .append("email", getEmail())
                .append("schoolOverview", getSchoolOverview())
                .append("housingSituation", getHousingSituation())
                .append("tuitionAndScholarships", getTuitionAndScholarships())
                .append("createUser", getCreateUser())
                .append("createTime", getCreateTime())
                .append("updateUser", getUpdateUser())
                .append("updateTime", getUpdateTime())
                .append("schoolOverviewJj", getSchoolOverviewJj())
                .append("natureEducation", getNatureEducation())
                .append("zszp", getZszp())
                .append("yxftzp", getYxftzp())
                .append("yxctzp", getYxctzp())
                .append("xhzp", getXhzp())
                .append("zszppUrlList", getZszppUrlList())
                .append("yxftzpUrl", getYxftzpUrl())
                .append("yxctzpUrl", getYxctzpUrl())
                .append("xhzpUrl", getXhzpUrl())
                .append("enname", getEnname())
                .append("auditState", getAuditState())
                .append("regState", getRegState())
                .append("isDel", getIsDel())
                .append("isNine", getIsNine())
                .append("isTwo", getIsTwo())
                .append("isDouble", getIsDouble())
                .append("vrUrl", getVrUrl())
                .append("status", getStatus())
                .append("isEnabled", getIsEnabled())
                .append("auditTime", getAuditTime())
                .toString();
    }
}
